ما أروعك بلا حدود...بلا ملوك ورؤساء

مستملكين ..... وطن واحد لكل العرب

LIST

P=16F84  

STAT

EQU

03H 

MONA

EQU

05H 

MONB

EQU

06H 

TAW

EQU

0DH

TAW1

EQU

0EH

TA7A

EQU

0FH

MA3

EQU

10H

DAD1

EQU

11H

DAD2

EQU

12H

EEDATA

EQU

08H

EEADR

EQU

09H

ECON1

EQU

88H

ECON2

EQU

89H

TRISA

EQU

85H

TRISB

EQU

86H

Z

EQU

02H

C

EQU

00H

W

EQU

00H

S

EQU

01H

EEIF

EQU

04H

WRR

EQU

03H

WEN

EQU

02H

WR

EQU

01H

RD

EQU

00H

            ORG        00                                             

            GOTO      BIDAYAH

KIRA     

BSF

STAT,5                

 

BSF

ECON1,RD  

 

BCF

STAT,5        

MOVF      

EEDATA,W   

 

RETURN                        

KITAB

BSF

STAT,5      

 

BSF

ECON1,WRR  

 

BCF

ECON1,EEIF      

 

MOVLW

55H

 

MOVWF

ECON2

 

MOVLW

AAH

 

MOVWF

ECON2

 

BSF

ECON1,WR

STANA

CLRWDT

 

 

BTFSS

ECON1,EEIF   

 

GOTO

STANA            

 

BCF

ECON1,EEIF   

 

BCF

ECON1,WEN   

 

BCF

STAT,5 

 

RETURN

 

MILITH

MOVWF

TAW 

FAWK1

MOVLW

D´110´                       

 

MOVWF

TAW1 

FAWK2

NOP

 

 

NOP

 

 

NOP

 

 

NOP

 

 

CLRWDT

 

 

NOP

 

 

DECFSZ

TAW1 

 

GOTO

FAWK2    

 

DECFSZ

TAW  

 

GOTO

FAWK1   

 

RETURN

 

جميل جدا , الميكرو يطبق الأوامر , واحد تلو الآخر ( بالتوالي ) , حتى يجد كلمة  goto أو  call فيقفز الى المكان الذي حدد له , إذا وجد كلمة return سيعود ليطبق الأمر الذي يلي كلمة  call , للتوضيح أكثر , لنأخذ برنامجنا هذا على صعيد المثال ..... الميكرو سيقرأ أول سطر الذي يعرف نوعه list ثم يبدأ بقرائة الموازات سطرا وراء الآخر حتى يصل الى أمر GOTO   BIDAYAH   فسيقفز الى السطر الذي أمامه كلمة BIDAYAH  وأين هو سنكتبه الآن .

BIDAYAH          BSF              STAT,5

                          MOVLW       FBH

                          MOVWF       TRISA

                          MOVLW        BFH

                          MOVWF        TRISB

                          BCF               STAT,5

                          BCF                MONB,6

                          BCF                MONA,2

                          MOVLW          D`50´

                          CALL              MILITH             

جيد ماذا نقول هنا ؟ , نقول إذهب الى البنك الثاني , حمل الرقم FB هيكس في سجل W , وما هو هذا

الرقم ثنائيا , ( إذهب إلى درسنا الأنظمه الرقميه , وحاول معرفة الجواب, وإذا وصلت الى نتيجة أنه

يساوي "11111011" ) تكون فعلا قد إستوعبت هذا الدرس .

الآن نقول حمل هذا الرقم في سجل TRISA وبذلك نكون قد حددنا ما هي الأرجل التي ستستخدم

كدخول أو خروج , ( إذهب الى درسنا منفذ أ و منفذ ب ) وستعلم أننا إخترنا فقط البين أو الرجل

  MONA,2 كخروج , لماذا ؟ لأن هذا البين هو الذي سيتحكم بالريلاي الذي يفتح ويغلق لنا الخط

بعدها وبنفس الطريقه نقول نريد الأرجل   التابعه لمنفذ ب كلها دخول ما عدا    MONB,6 ,طبعا

أصبحت تعرف كيف فعلنا ذلك , لماذا ما عدا هذا البين ؟ لأنه هو الذي سيتحكم بريلاي المروحه.

إرجع إلى البنك الأول

بعدها نقول تأكد لنا أن كلا الريلاي مطفئ .

ثم نقول , يا حبيب قلبي يا ميكر وين طاير , إستنى خمسين ميليثانيه بس , فقط , لا غير كما تريد 

GARIB          CLRF                EEADR

                     CALL                 KIRA

                     MOVWF            TA7A

                     BTFSC              TA7A,0

                     GOTO               YASHTAGIL

                     BCF                   MONB,6

                     GOTO                GARIB2

YASHTAGIL  BSF                   MONB,6

GARIB2         BTFSS               MONA,3

                      GOTO                GARIB

وين....وين.... نعم أخي معك ...ليش نعسان ....شوفلك شي كاسة شاي .... وما بدك تعزمني .... لا

تعزمني.... بس لا تتكاسل.... من هنا طريق تحرير فلسطين إنشاءالله....على فكره أصدقائي تحيه الى

المهندس الإلكتروني العربي المصري الذي كتب إلي قائلا ....( يروه بعيدا ونراه قريبا إنشاءالله )

كذلك تحية إجلال وإحترام لخمسة ألاف عالم عراقي .... يمثلون الهدف الوحيد ....لحملة الشر العدوانيه

الصهيونيه بلباس أمريكي ....فتحيه لكم وللشعب العراقي البطل .

جيد جدا ... نقول هنا يا أخي الحبيب , ضع لنا سجل  EEADR  صفوره ( صفره ) . ونحن نعلم أن

هذا السجل يحمل عنوان أو مكان السجلات الموجوده في ال   EEPROM والتي تبدأ من  00H إلى

  3FH  وعددها 64 . إذا مطلبنا هو أول سجل في الذاكره هذه. ثم ندعو سوب روتين القرائه . الذي

سيقرأ لنا , أول سجل بالتحديد ويضعه في w  جميل جدا .... أنت معي طبعا....إذا لا عد القرائه مره

وإثنين وثلاثه .

الآن نحرك ما هو في  w الى سجل سميناه نحن  TA7A مشتق من كلمة تحكم .  ثم نقول للميكرو

إفحص لي أول بيت ( BIT ) في سجل TA7A  فإذا وجدته صفر ...إفعل التالي

إقفز الأمر الذي يلي هذا

إطفئ المروحه

إذهب الى السطر الذي أمامه كلمة جرب 2

شوف إذا رن الجرس , إذا نعم أقفز الأمر الذي يلي هذا ( وبذلك نكون قد قفزنا الى ما سنكتبه لاحقا)

وإذا لم يرن إذهب إلى  GARIB فبهذا سيبقى الميكرو يراوح مكانه حتى يرن الجرس .

أما في الحاله الثانيه ( إذا وجد TA7A يختلف عن صفر )

إذهب إلى السطر الذي أمامه كلمة YASHTAGIL شغل المروحه ,

إفحص إذا رن الجرس , إذا فعل فإقفز , وإذا لا إذهب مجددا الى  GARIB  وراوح مكانك حتى يرن

لا زلت معي؟

 

WAKIT              BSF          MONA,2

                          MOVLW   D´40´

                          MOVWF    DAD1

BARMIH1          MOVLW    D `250`

                          MOVWF    DAD2

BARMIH2          MOVLW    01H

                          CALL         MILITH

                          BTFSC       MONB,4

                          GOTO        SHIFRA

                          DECFSZ     DAD2,S

                          GOTO         BARMIH2 

                          DECFSZ      DAD1,S

                          GOTO          BARMIH1

                          BCF            MONA,2 

                          GOTO         BIDAYAH

تذكر معي ما كتبناه سابقا , قلنا أن الميكرو سيراوح مكانه حتى يرن الجرس , إذا رن سيقفز الى ما كتبناه

الآن ..... حيث نقول إفتح خط التلفون ....حمل لنا الرقم أربعين في سجل  DAD1 والرقم 250 في سجل

 DAD2 .....إنتظر ميليثانيه واحده ..... بعدها إفحص لي إذا أخبرك ال 8870 بأنها إستلم أي رقم ( تذكر

صديقي نحن قلنا أن 8870 لديه بين أو رجل تصبح واحد عندما يستلم أي رقم وصفر في حل لم يستلم

وهذا البين وصلناه على  MONB4 )  فإذا أخبرك بنعم إذهب الى السطر الذي أمامه كلمة SHIFRA

( سنكتبها لاحقا ) وإذا أخبرك ب لا نقص من سجل   DAD2 واحد , وخبئ النتيجه في نفس السجل

وبنفس الوقت إفحص لي هذا السجل , هل هو صفر , إذا كان كذلك فإقفز أي سكر الخط وإرجع الى

BIDAYAH ( الى أول البرنامج من جديد )

وإذا لم يكن صفرا .... إذهب إلى   BARMIH2  وإفعل كل ما طلبته منك من جديد حتى يصبح صفر

وبذلك تكون قد مرت العشر ثواني .....فيصبح صفر بلا شك وتغلق الخط غصب عنك إذا لم تستلم رقما

.....ما رأيك ؟ واضح وضوح الشمس .  

لا مش واضح قفزت شرح البرمه الأولى  جيد جدا معناها إنك معي وفهمان الموضوع

 

SHIFRA          MOVF        MONB,W

                       ANDLW      OFH

                       MOVWF      MA3

                       XORLW       05H

                       BTFSS         STAT,Z

                       GOTO         SAKIR

                       BSF             TA7A,0

                       GOTO          KAZIN

SAKIR            MOVF          MA3,W

                       XORLW        06H

                       BTFSS          STAT,Z

                       GOTO           BARMIH2

                       BCF               TA7A,0       

إتفقنا أن الميكرو سيأتي إلى هنا في حال  إستلم إشاره من 8870 على أنه في رقم موجود ....فما سيفعل

إذا ؟ .... سيقرأ هذا الرقم ويضعه في W ويطبق عليه عملية  ANDLW  مع الرقم 0FH   وهذا الرقم

يوازي ثنائيا { 00001111 } الآن إذهب الى دروس الأوامر وتعرف ما يحدث بكل تأكيد .

بعد تطبيق هذه العمليه خبئ لنا الرقم في سجل  MA3 الذي إشتقينا اسمه من كلمة معلومه

ثم طبق عملية XORLW  مع الرقم   05H .... الآن أعتقد أنك فهمت قصدي ..... لا يا شيخ ....طيب

بهذا نقول .... شوف لي إذا كان هذا الرقم يساوي خمسه أو لا .... طيب وإذا كان خمسه شو بصير ...

علم Z في سجل ستاتوس سيصبح واحد ... وإذا لا صفر .

فإذا كان واحد ... ضع واحد في أول بيت من سجل TA7A وإذهب إلى KAZIN (خزن) سنكتبها لاحقا

وإذا كان صفر فإن الرقم مختلف , فإذهب الى SAKIR (سكر ) وما ستفعل هناك ؟ ....التالي

ضع سجل معلومه  MA3 في   W شوف إذا يساوي سته

نعم  ..... ضع صفر في أول بيت من سجل تحكم

لا   ..... إذهب الى برمه إثنين وعد الكره من جديد

بكلمات أخرى صديقي المحترم .... هنا نضع كلمة السر... إذا كانت 5 ستشتغل المروحه وإذا سته

ستطفئ . أنا لا أريد تعقيد الأمور أكثر .... ولكن بإمكانك بقليل من الجهد وضع سوب روتين فيها

كلمة سر من أربع أو كذا رقم .... ولا أشك بأنك ستخرج من هنا قبل أن تصبح أكبر مبرمج للميكرو في

العالم ........ أوه    أوه  علينا     ليش عم تظحك ......

 

KAZIN          CLRF        EEADR

                     MOVF       TA7A,W

                     MOVWF    EEDATA

                      CALL        KITAB

                      MOVLW    D`50`

                      CALL         MILITH

                       BTFSC      TA7A,0

                      GOTO         DAWER

                       BCF           MONB,6

                       GOTO        ITLA3

DAWER          BSF            MONB,6

ITLA3            GOTO         BARMIH2       

                       END                     

 

هذه الأوامر ليست جديده وتعرفها كلها, نخبأ المعلومه في ال EEPROM كلما تغيرت , ونعود من جديد

إلى التوقيت . فبرنامجنا إنتها مبروك وكل برنامج وأنت بخير , فمن هنا وصاعدا ستكون برامجنا بدون

شرح , لأنني أصبحت أعتبرك محللا محترما . الأمر بسيط ويحتاج الى قليل من الصبر والمثابره , الحقيقه

أن الميكرو يفتح أمامنا عالما لم نرله من قبل , فبقليل من التفكير وعدم الخوف من الخطأ والإبداع تصل

الى ما تريد . أنا شخصيا أفضل جيل هاوي مبدع , على أن يكون الهاوي فقط مصلح تلفزيونات أو غيره.

     سأضرب لك مثلا , وبينما أنا أركب هذه الدائره وأجربها وهي تعمل بشكل جيد , إكتشفت أمرا لم أكن

أعرفه من قبل , هو التالي أن إرسال نغمات   DTMF بين تلفون وآخر , لا تصل التلفون الآخر فقط

عندما تفتح الخط . بل منذ بدأ الجرس بالرنين . أي أن الإتصال الفعلي بين تلفونين هي عندما يرن أول

رنه , هذا إكتشاف عظيم جدا سأبيعك الفكره التاليه بناء على ما سردته .... وثمنها شكرا فقط ...

وأن تخبرني إذا أنجزتها ..... لكي لا نكون أنانيين ..... ويتعلمها الغير.

في تجولي في كثير منم المواقع , وجدت دوائر تسجيل مكالمات . لاسلكي صغير وتتنصت وكثير من

الصرعات المشابه , وكلها هدفها المكالمه بحد ذاتها .... أي أننا سنعلم ما يقولون عندما يتكلمون على

التلفون .

فكرتنا تختلف تماما , نريد أن نعرف ماذا يجري من كلام في منزلنا  بشكل عادي , باللأحرى ما يدور

من حديث في غرفة الإستقبال , إذا نحن نريد صنع دائره. توضع في داخل جهاز التلفون نفسه.

إذا رن الجرس أخرت سماع رناته رنه واحده أو إثنين  . كيف ؟ بالمتحكم الصغير وريلاي يوصل على

دائرة السبيكر مكبر الصوت حيث يصل صوت الجرس .

إذا وصلت كلمة السر خلال خلال هذه الرنتين  سيفتح الخط حتى تأتي كلمة سر إغلاقه .

دائره صغيره لمضخم عمليات مع مكيروفون صغير موصوله على خط التلفون . وتسمع الإبره إذا

سقطت في الغرفه .

المشروع بسيط .... وما شرحناه يساعدك كثيرا

ويمكنك أن تنادي الى البيت وقبل مروور رنتين تضفط كلمة السر فتسمع ما تقوله حماتك لإمرأتك عنك

وإذا مرت الرنتين الميكرو سيصل السماعه فيسمعون الجرس ويجاوبون عاديا .

ما رأيك ..... ولكن تضرب حماتك كثير , كثير بسببي ....عيب ...... ها ها ها ها  ها ها ها ها ها ها ها

تطبيق البرنامج في الأم بي لاب

 

أول الصفحه الصفحه الرئيسيه قائمة المفضله مواقع صديقه مشاريع
إنتال فري سكال ميكروتشيب قل لي "ما تريد"ـ المجموعه
1